package wellness.activities.data;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class DataBase extends SQLiteOpenHelper {

	private static final String DATABASE_NAME = "wellnessdroid.db";
	private static final int DATABASE_VERSION = 9;
	private static SQLiteDatabase db = null;

	DataBase(Context context) {
		super(context, DATABASE_NAME, null, DATABASE_VERSION);
	}

	public static SQLiteDatabase getDB(Context context) {
		if (DataBase.db == null || !DataBase.db.isOpen()) {
			DataBase openHelper = new DataBase(context);
			DataBase.db = openHelper.getWritableDatabase();
		}
		return DataBase.db;
	}

	public static void closeDB() {
		if (DataBase.db != null) {
			DataBase.db.close();
		}
	}

	@Override
	public void onCreate(SQLiteDatabase db) {
		db.execSQL("CREATE TABLE Usuario"
				+ " (USUA_ID INTEGER PRIMARY KEY AUTOINCREMENT,"
				+ " USUA_NOME TEXT," + " USUA_SEXO TEXT,"
				+ " USUA_NASCIMENTO TEXT," + " USUA_ALTURA REAL,"
				+ " USUA_PESO REAL," + " USUA_PRO_ATIVIDADE INTEGER,"
				+ " USUA_PRO_ATRATIVA INTEGER)");

		db.execSQL("CREATE TABLE Atividade"
				+ " (ATIV_ID INTEGER PRIMARY KEY AUTOINCREMENT,"
				+ " ATIV_NOME TEXT," + " ATIV_TIPO TEXT,"
				+ " ATIV_REMOVIDO INTEGER," + " ATIV_DURACAO_MIN INTEGER,"
				+ " ATIV_DURACAO_MAX INTEGER," + " ATIV_GOSTO INTEGER)");

		db.execSQL("CREATE TABLE TempoLivre"
				+ " (TEMP_ID INTEGER PRIMARY KEY AUTOINCREMENT,"
				+ " TEMP_SEMANA TEXT," + " TEMP_INICIO TEXT,"
				+ " TEMP_FIM TEXT)");

		db.execSQL("CREATE TABLE Agendamento"
				+ " (AGEN_ID INTEGER PRIMARY KEY AUTOINCREMENT,"
				+ " ATIV_ID INTEGER, " + " AGEN_DATA TEXT, "
				+ " AGEN_PRATICOU INTEGER, " + " AGEN_INTENSIDADE TEXT, "
				+ " AGEN_DURACAO INTEGER, "
				+ " FOREIGN KEY (ATIV_ID) REFERENCES Atividade (ATIV_ID))");
	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		Log.w("Example",
				"Upgrading database, this will drop tables and recreate.");
		db.execSQL("DROP TABLE IF EXISTS Usuario");
		db.execSQL("DROP TABLE IF EXISTS Agendamento");
		db.execSQL("DROP TABLE IF EXISTS Atividade");
		db.execSQL("DROP TABLE IF EXISTS TempoLivre");
		onCreate(db);
	}
}
